/***************** Comunes ****************/
/* Constante para los bytes donde no se van a escribir
 * datos con significado
 */
#define CONST_VACIO 0x00

/*
 * El tamaño de los bloques se define como:
 * tamaño = BASE_TAMANIO x 2^POTENCIA
 */
#define POTENCIA 0

#define BASE_TAMANIO 1024

/*
 * Define el tamanio con el que se representara la longitud
 * del Registro
 */
#define TAM_LONG_REGISTRO sizeof(int)

/*
 * Define el tamanio con el que se representara la longitud
 * de la clave
 */
#define TAM_LONG_CLAVE sizeof(char)

/*
 * Define el tamanio con el que se representara la longitud
 * de un dato
 */
#define TAM_LONG_DATO sizeof(int)



/***************** Hash ********************/
/*
 * Constante que define el tamaño del bucket
 */
#define TAM_BUCKET (BASE_TAMANIO<<POTENCIA)

/*
 * Tamanio maximo de la tabla en memoria
 */
#define TAM_TABLA_MEM 8



/***************** Logger ******************/

#define POTENCIA_LOGGER 8

/*
 * tamanio maximo de los archivo logger
 */
#define  MAX_LONG_LOGGER (BASE_TAMANIO<<POTENCIA_LOGGER)



/***************** Arbol *******************/
/*
 * Define el tamaño total de un Nodo
 */
#define TAM_TOTAL_NODO (BASE_TAMANIO<<POTENCIA)

/*
 * Define el tamanio de los datos de control de un Nodo.
 * Para nodos interiores es: nivel (4 bytes) + cantidad de claves (4 bytes) + referencia al hijo[n+1] (4 bytes)
 * Para nodos hojas es: nivel (4 bytes) + cantidad de claves (4 bytes) + referencia a hoja siguiente (4 bytes)
 */
#define TAM_CONTROL_NODO 12

/*
 * Define el espacio que se puede usar de un Nodo: Tamanio Total - Tamanio Datos de Control
 */
#define TAM_EFECTIVO_NODO (TAM_TOTAL_NODO - TAM_CONTROL_NODO)

/*
 * Define el tamanio de los datos de control de un Registro.
 * Para nodos interiores es: tamanio de la clave (1 byte) + referencia al hijo[n] (4 bytes)
 * Para nodos hojas es:  tamanio de la clave (1 byte) + tamanio del dato (4 bytes)
 */
#define TAM_CONTROL_REGISTRO 5

/*
 * Define el porcentaje maximo del tamanio efectivo del nodo, que puede ocupar un Registro.
 */
#define PORC_TAMANIO_NODO 50
